package com.ruijixiang.leetcode.everyday.leetcode2024.leetcode202408;

public class leetcode20240822 {
    // 从x起步
    public long minEnd(int n,int x){
        n--;// 先把n减--，这样下面讨论的n就是原来的n-1
        long ans=x;
        int i=0,j=0;
        while((n>>j)>0){
            // x的第i个比特值是0，即是[空位]
            if((ans >> i & 1)==0){
                // 空位填入n的第j个比特值
                ans |=(long)(n>>j & 1)<<i;// 第i个比特置为1
                j++;
            }
            i++;
        }
        return ans;
    }

    public static void main(String[] args){
        leetcode20240822 leetcode20240822=new leetcode20240822();
        int n=3,x=4;
        long res=leetcode20240822.minEnd(n,x);
        System.out.println(res);
    }
}
